﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Concurrent;
using System.Threading;
using System.Diagnostics;
using Microsoft.Win32;
using System.IO;

using ParamSetCollection.General.Parameters.Normal;
using MainController.Hardware.PLC;
using MainController.Hardware.PLC.MEGMEET;
using ParamSetCollection.General.ParamTable.JTRII;
using ParamSetCollection.General.ParamTable;

namespace MainController.Hardware.Machine
{
    public class JTRSeries: ReflowMachine
    {
        #region============================== 变量 ====================================


        public JTRIIParamHelper jtrParam = null;

        PlcBasic mainPlc = null;

        public static JTRSeries Instance = null;
        #endregion=====================================================================


        #region============================== 属性 ====================================
        #endregion=====================================================================


        #region============================= 内部函数 ================================
        #endregion====================================================================


        #region============================= 保护函数 ================================
        #endregion====================================================================


        #region============================= 公开函数 ================================
        public JTRSeries()
        {
          
            jtrParam = ParamHelper.GetJTRParamHelper("MEGMEET");
            mainPlc = PlcBasic.GetMegmitPlc();
            mainPlc?.InitParams(jtrParam);

            Instance = this;
        }


        public override void Start()
        {
            mainPlc.Start();
        }


        public override void Stop()
        {
            mainPlc.Stop();
        }

        public override void Dispose()
        {
            
        }

        #endregion====================================================================

        #region============================= 参数交互 ================================


        public override void ReduceParamRange(ParamUnit param)
        {
            mainPlc.ReduceParamRange(param);
        }




        //下发更新参数
        public override void RenewParamCmd(List<ParamUnit> puList)
        {
            mainPlc.ExecuteCmds(puList);
        }



        //获取所有io参数
        public override List<ParamUnit> GetSpecificParams(string type)
        {
            return mainPlc.GetSpecificParams(type);
        }

        public override string GetBarCode()
        {
            return mainPlc.GetBarCode();
        }

        public override void BindingParams(IParamCtrl ctrl)
        {
            string[] tags = ctrl.ParamTag.Split('.');
            if(tags.Length==3)
            {
                ctrl.Pu = jtrParam.GetBindingParams(tags);


            }
        }

        #endregion====================================================================

        #region============================= 消息响应 ================================
        #endregion====================================================================
    }
}
